package com.zjny.util;

import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import com.zjny.constant.CommonConstant;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

/**
 * ID 工具类
 *
 * @author cui haida
 * 2025/06/18
 */
public class IdUtils {
    /**
     * 生成一个不包含连字符的UUID字符串。
     *
     * @return 一个无连字符的UUID字符串。
     */
    public static String getUUID() {
        // 生成一个随机的UUID并将其转换为字符串
        String uuid = UUID.randomUUID().toString();
        // 移除UUID中的连字符
        uuid = uuid.replace(CommonConstant.SPLIT_LINE, CommonConstant.EMPTY);
        return uuid;
    }

    /**
     * 生成一个唯一的雪花ID。
     * 雪花ID是一种分布式系统中生成唯一ID的算法，由Twitter开源。
     * 它生成的ID是一个长整型数字，由时间戳、机器ID和序列号组成，保证了在分布式系统中的唯一性。
     *
     * @return 生成的雪花ID的字符串表示。
     */
    public static String snowflakeId() {
        // 获取一个Snowflake实例，用于生成ID。
        Snowflake snowflake = IdUtil.getSnowflake();
        // 生成下一个唯一ID。
        long id = snowflake.nextId();
        // 将ID转换为字符串形式返回。
        return String.valueOf(id);
    }
}
